﻿using System;
using System.ComponentModel;

namespace ExpressesClass.Model
{
    /// <summary>
    /// 快递单号
    /// </summary>
    public class Kddh : ICloneable
    {
        /// <summary>
        /// 是否选择
        /// </summary>
        public bool isCheck { get; set; }
        /// <summary>
        /// 订单号
        /// </summary>
        public string orderId { get; set; }
        /// <summary>
        /// 面单号
        /// </summary>
        public string mailNo { get; set; }
        /// <summary>
        /// 子单
        /// </summary>
        public string mailno_zd { get; set; }
        /// <summary>
        /// 打印数量
        /// </summary>
        public int printNum { get; set; }
        /// <summary>
        /// 制单部门
        /// </summary>
        public string bm { get; set; }
        /// <summary>
        /// 位置号
        /// </summary>
        public string wzh { get; set; }
        /// <summary>
        /// 收件人公司
        /// </summary>
        public string receiveCompany { get; set; }
        /// <summary>
        /// 收件人姓名
        /// </summary>
        public string receiveMan { get; set; }
        /// <summary>
        /// 收件人电话
        /// </summary>
        public string receiveManPhone { get; set; }
        /// <summary>
        /// 收件人地址
        /// </summary>
        public string receiveManAddress { get; set; }
        /// <summary>
        /// 收件邮编
        /// </summary>
        public string receivePostcode { get; set; }
        /// <summary>
        /// 收件省
        /// </summary>
        public string receiveProvince { get; set; }
        /// <summary>
        /// 收件市
        /// </summary>
        public string receiveCity { get; set; }
        /// <summary>
        /// 收件区县
        /// </summary>
        public string receiveCounty { get; set; }
        /// <summary>
        /// 	寄件人姓名
        /// </summary>
        public string sendMan { get; set; }
        /// <summary>
        /// 寄件人电话
        /// </summary>
        public string sendManPhone { get; set; }
        /// <summary>
        /// 寄件人地址
        /// </summary>
        public string sendManAddress { get; set; }
        /// <summary>
        /// 寄件邮编
        /// </summary>
        public string sendPostcode { get; set; }
        /// <summary>
        /// 寄件省
        /// </summary>
        public string sendProvince { get; set; }
        /// <summary>
        /// 寄件市
        /// </summary>
        public string sendCity { get; set; }
        /// <summary>
        /// 寄件区县
        /// </summary>
        public string sendCounty { get; set; }
        /// <summary>
        /// 寄件人公司
        /// </summary>
        public string sendCompany { get; set; }
        /// <summary>
        /// 业务名称
        /// </summary>
        public string shipName { get; set; }
        /// <summary>
        /// 服务金额
        /// </summary>
        public string shipVal { get; set; }
        /// <summary>
        /// 品名
        /// </summary>
        public string itemName { get; set; }
        /// <summary>
        /// 重量
        /// </summary>
        public string itemWeight { get; set; }
        /// <summary>
        /// 数量
        /// </summary>
        public string itemCount { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        public string remark { get; set; }
        /// <summary>
        /// 大头笔
        /// </summary>
        public string markDestination { get; set; }
        /// <summary>
        /// 末端分拣编码
        /// </summary>
        public string sortingCode { get; set; }
        /// <summary>
        /// 支付方式
        /// </summary>
        public string payMethod { get; set; }
        /// <summary>
        /// 是否回签单
        /// </summary>
        public string isReturnNo { get; set; }
        /// <summary>
        /// 集包编码
        /// </summary>
        public string pkgCode { get; set; }
        /// <summary>
        /// 运单发放站点
        /// </summary>
        public string billProvideSiteName { get; set; }
        /// <summary>
        /// 运单发放站点编码
        /// </summary>
        public string billProvideSiteCode { get; set; }
        /// <summary>
        /// 时效类型
        /// </summary>
        public string proCode { get; set; }
        /// <summary>
        /// 时效名称
        /// </summary>
        public string proName { get; set; }
        /// <summary>
        /// 路由标签
        /// </summary>
        public string destRouteLabel { get; set; }
        /// <summary>
        /// 目的地单元区域
        /// </summary>
        public string destTeamCode { get; set; }
        /// <summary>
        /// 入港映射码
        /// </summary>
        public string codingMapping { get; set; }
        /// <summary>
        /// 原寄地中转场
        /// </summary>
        public string sourceTransferCode { get; set; }
        /// <summary>
        /// AB标
        /// </summary>
        public string abFlag { get; set; }
        /// <summary>
        /// 二维码
        /// </summary>
        public string twoDimensionCode { get; set; }
        /// <summary>
        /// 出港映射码
        /// </summary>
        public string codingMappingOut { get; set; }
        /// <summary>
        /// XB标志
        /// </summary>
        public string xbFlag { get; set; }
        /// <summary>
        /// 打印图标
        /// </summary>
        public string printIcon { get; set; }
        /// <summary>
        /// 保价金额
        /// </summary>
        public string insuranceValue { get; set; }
        /// <summary>
        /// 快递公司
        /// </summary>
        public string kdCompanys { get; set; }
        /// <summary>
        /// 应用场景 CK/OFFICE
        /// </summary>
        public string scenarios { get; set; }
        /// <summary>
        /// 是否已打印
        /// </summary>
        public string isPrint { get; set; }
        /// <summary>
        /// 是否已取消
        /// </summary>
        public string isCancel { get; set; }
        /// <summary>
        /// 插入时间
        /// </summary>
        public string insertDate { get; set; }
        /// <summary>
        /// 打印开始序号
        /// </summary>
        public int printBegin { get; set; }
        /// <summary>
        /// 打印结束序号
        /// </summary>
        public int printEnd { get; set; }
        /// <summary>
        /// 重新分配内存方法
        /// </summary>
        /// <returns></returns>
        public object Clone()
        {
            return this.MemberwiseClone();
        }
        /// <summary>
        /// 比较方法
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public override bool Equals(object obj)
        {
            Kddh others = (Kddh)obj;
            return this.mailNo == others.mailNo;
        }
        /// <summary>
        /// 比较方法
        /// </summary>
        /// <returns></returns>
        public override int GetHashCode()
        {
            return base.GetHashCode();
        }
        /// <summary>
        /// 应用场景枚举类
        /// </summary>
        public enum ScenariosType
        {
            [Description("CK")] CK, [Description("OFFICE")] OFFICE
        }
    }
}
